package com.huibur.devicecheck.service;

import com.huibur.devicecheck.model.param.DeviceParam;
import com.huibur.devicecheck.model.param.JudgePowerParam;
import com.huibur.devicecheck.model.po.DeviceCategoryPO;
import com.huibur.devicecheck.model.po.TypePO;
import com.huibur.devicecheck.model.query.DeviceQuery;
import com.huibur.devicecheck.model.vo.DeviceVO;
import com.huibur.devicecheck.request.ListRes;
import com.huibur.devicecheck.request.ObjRes;
import com.huibur.devicecheck.request.PageRes;

import java.text.ParseException;
import java.util.List;

/*******************************************************
* Title: IDeviceService.java
* Description:
* @author baiqingshuo
* @date 2021/9/24
* @version 1.0
*******************************************************/
public interface IDeviceService {


    /**
     *新增设备
     * @param deviceParam
     * @return
     */
    ObjRes<Void> insertDevice(DeviceParam deviceParam);

    /**
     * 删除设备
     * @param id
     * @return
     */
    Boolean deleteById(Long id);

    /**
     * 编辑设备
     * @param id
     * @param deviceParam
     * @return
     */
    ObjRes<Void> updateDevice(Long id, DeviceParam deviceParam);

    /**
     * 设备查询(查询并分页)
     * @param deviceQuery
     * @return
     */
    PageRes<DeviceVO> selectDeviceList(DeviceQuery deviceQuery);

    /**
     * 获取设备详情
     * @param id
     * @return
     */
    DeviceVO selectDeviceById(Long id);

    /**
     * 获取设备基本信息
     * @param label
     * @return
     */
    DeviceVO findDeviceByLabel(String label);

    /**
     * 检查项获取设备名称
     * @return
     */
    List<DeviceCategoryPO> selectDeviceName();

    /**
     * 获取生产厂家列表
     * @return
     */
    List<String> selectDeviceManufacturer();

    /**
     * 获取设备类别列表
     * @return
     */
    List<TypePO> selectDeviceType();

    /**
     * 获取某个巡检员的当前月份未检查设备
     * @param userId
     * @return
     */
    List<DeviceVO> selectDeviceListByUserId(Long userId) throws ParseException;

    /**
     * 导入Excel表格并解析入库
     * @param filePath
     * @return
     */
    String importFile(String filePath) throws ParseException;

    /**
     * 批量新建
     * @param deviceParam
     * @return
     */
    ObjRes<Void> saveBatchDevice(DeviceParam deviceParam);
}
